#ifndef CONFIG_H_
#define CONFIG_H_

#include <stdio.h>
#include <string>
#include <map>
using namespace std;

class Config
{
public:
	static bool createConfig(const string & fileName);
	static Config *getInstance() {return mInstance;}

	bool getValue(const string &key, string *s);
	bool getValue(const string &key, double *v);
	bool getValue(const string &key, int *i);
	bool getValue(const string &key, long *l);

	string getValue(const string &key, const string & d);
	int getValue(const string &key, int d);
	double getValue(const string &key, double d);
	long getValue(const string &key, long d);

private:
	Config();
	~Config();
	bool load(const string & fileName);

	static Config	*mInstance;

	map<string, string>		mMap;
};

#endif // CONFIG_H_